ANALSIS DE DATOS CON PYTHON¶

BASADO EN LAS PRODUCCIONES DE 3 MATERIAS PRIMAS EN DIFERENTES DECADAS (datos ficticios, pero aproximados).¶

RESULTADOS EN DIFERENTES TIPOS DE GRAFICOS Y MAPA.¶

REQUIERE LAS LIBRERIAS TKINTER, PANDAS Y PLOTLY.EXPRESS.

In [2]:
import tkinter as tk
from tkinter import ttk, messagebox
import pandas as pd
import plotly.express as px

# Funcion de carga y muestra de datos
def mostrar_datos():
    try:
# Carga de tabla Excel en formato .XLSX
        path = "Steeldata2.xlsx"
        df = pd.read_excel(path)

# Filtra datos segun año seleccionado y material
        año_seleccionado = int(combo_años.get())
        mat_seleccionado = combo_mat.get()
        df_filtrado = df[(df['DECADA'] == año_seleccionado) & (df['MATERIAL'] == mat_seleccionado)]

        print(df_filtrado)
           
# Crea graficos de columnas            
        gra_01 = px.bar(df_filtrado, x='PAIS', y='PRODUCCION',
        title=f'Produccion de {mat_seleccionado} en la decada de {año_seleccionado} (en millones de toneladas)',
        color="PAIS", text_auto=True)
        gra_01.show()

        gra_02 = px.bar(df_filtrado, x="PAIS", y=["INTERNO", "EXPORT"],
        title=f"Consumo interno y exportaciones de {mat_seleccionado} en la decada de {año_seleccionado}\
 (en millones de toneladas)",text_auto=True)
        gra_02.show()

# Crea mapamundi
        map_01 = px.choropleth(df_filtrado, locations='PAIS', locationmode='country names', color='PRODUCCION',
        title=f'Cinco principales productores de {mat_seleccionado} en la decada de {año_seleccionado}\
 (en millones de toneladas)') 
        map_01.show()
        
# Crea grafico de lineas con fluctuaciones de producciones del material seleccionado
        df_filtrado_material = df[df['MATERIAL'] == mat_seleccionado]
        lines_01 = px.line(df_filtrado_material, x='DECADA', y='PRODUCCION', color='PAIS', line_group='PAIS', 
        hover_name='PAIS',
        title=f'Fluctuaciones de la produccion de {mat_seleccionado} a lo largo de las decadas')
        lines_01.show()
        
# Crea grafico de burbujas comparativo decadas/materiales/paises/producciones             
        fig_01 = px.scatter(df, x="DECADA", y="MATERIAL", size="PRODUCCION", color="PAIS",log_x=True, size_max=100,
        title="Comparativa decadas/materiales/paises/producciones")
        fig_01.show()
        
    except Exception as e:
        messagebox.showerror("Error", f"No se pudo cargar los datos: {e}")

# Configuracion de interfaz grafica
root = tk.Tk()
root.geometry("550x300")
root.title("-PRINCIPALES PRODUCTORES DE METALES POR DECADAS 1950-2020-")
root.iconbitmap('Viga.ico')

# Selector de años
label_años = tk.Label(root, text="SELECCIONE LA DECADA:")
label_años.pack(pady=5)
combo_años = ttk.Combobox(root, values=[1950, 1960, 1970, 1980, 1990, 2000, 2010])
combo_años.pack(pady=10)
combo_años.current(0)

# Selector Acero/Cobre/Aluminio
label_mat = tk.Label(root, text="SELECCIONE UN MATERIAL:")
label_mat.pack(pady=5)
combo_mat = ttk.Combobox(root, values=["ACERO", "COBRE" , "ALUMINIO"])
combo_mat.pack(pady=10)
combo_mat.current(0)

# Boton para mostrar datos
btn_mostrar = tk.Button(root, text="MOSTRAR PRODUCCION", command=mostrar_datos)
btn_mostrar.pack(pady=50)

# Ejecutar aplicacion
root.mainloop()       
   DECADA MATERIAL     PAIS  PRODUCCION  INTERNO  EXPORT
0    1950    ACERO      USA         900      726     174
1    1950    ACERO   Russia         450      420      30
2    1950    ACERO  Germany         220      214       6
3    1950    ACERO       UK         200      185      15
4    1950    ACERO   France         110      106       4